Businesses often have internal business policies intended to address a wide range of issues such as security, privacy, trade secrets, criminal activity of employees or others with access to the business, and many others. These business policies address various aspects of a business, such as purchasing, selling, marketing, and internal administration. Because of the large number of activities occurring during the course of running a business, which may have various entities located in a variety of geographical locations, it is often impractical to manually monitor all activities in which improper behavior or mistakes may occur.
One approach to implementing business policies has been to monitor and control computer systems used to facilitate a business' activities. For example, information regarding various activities, such as sales and payroll, are often stored in one or more data stores. This information may be analyzed to find activity that might be in violation of a business policy, such as an item on an invoice or paycheck to an employee being outside of a specified range, or a particular employee attempting to access information to which he or she is not entitled access.
One approach to monitoring and controlling a business' computer systems involves storing business data in one or more ontologies. With the advent of semantic technologies, the importance of ontologies and semantic query languages has grown manifold. An ontology is a formal representation of knowledge, specifically a formal representation of a set of concepts within a domain and relationships between the concepts. Ontologies are used in several different areas including business analytics, enterprise systems, artificial intelligence and the like, and have the potential to be used in several other fields and applications.
An ontology is typically encoded using an ontology language. Several ontology languages are available. The OWL Web Ontology Language has become the industry standard for representing web ontologies. OWL can be used to explicitly represent the meaning of terms in vocabularies and the relationships between the terms. OWL thus provides facilities for expressing meaning and semantics that goes far beyond the capabilities of languages such as XML. OWL is being developed by the Web Ontology Working Group as part of the W3C Semantic Web Activity. Further information related to OWL may be found at the W3C website.
An ontology may be persisted in memory such as in a database or other data store. There are several standard ways of querying and manipulating the data in an ontology using query languages such as RDQL (Resource Description Format Query Language), OWL-QL, SPARQL (SPARQL Protocol and RDF Query Language), and others. Among the ontology query languages, SPARQL is considered by many to be the de facto industry standard.
In the context of a business, data from one or more data stores may be periodically compiled in an ontology, such as in a batch process occurring at times when there is less use of the business' computer systems, such as at night when most employees are not present. Once compiled in an ontology, an ontology reasoner can be used to make logical inferences from the ontology. Generally, an ontology reasoner or semantic reasoning module is a module implemented in hardware or software executed by a processor, configured to infer logical consequences from a set of facts or axioms stored in an ontology. This process is often referred to as “reasoning.” Data from an ontology may be converted into a form convenient for processing by the reasoner, such as in a manner described in co-pending U.S. patent application Ser. No. 12/576,176, entitled “Techniques for Processing Ontologies,” filed on Oct. 8, 2009, and which is incorporated herein by reference for all purposes. Ontology reasoners are also known as reasoning engines, rules engines, or simply reasoners. Examples include RETE-based rules engines such as JESS, a rules engine for the Java platform, available for download at http://www.jessrules.com, and probabilistic description logic reasoners such as Pronto, available from Clark & Parsia LLC, located at 926 N St. NW Rear, Studio #1, Washington, D.C. 20001. Ontology reasoners typically incorporate algorithms that, if possible, avoid analyzing complete data sets, and instead analyze only relevant data.
Often the rules used by reasoners to ensure compliance with one or more policies change over time. For example, as laws, computer systems, and other things applicable to a business' operations change, new types of fraud emerge. In addition, those wishing to perpetrate fraud on a business become more clever as prior ways of committing fraud become known and, therefore, more easily detected. Thus, in order to detect emerging methods of committing fraud or, generally, in order to ensure compliance with new and/or changing policies, the reasoners that analyze data must be updated accordingly. Typically, updating reasoners is a cumbersome process that involves reprogramming the rules by which the reasoners operate.
Moreover, different reasoners may use data in various ways. For instance, pattern-based reasoners analyze data using various statistical techniques in order to make inferences based on the analysis. As an example, correlations among invoice amounts, check amounts, and other data items may be found using statistical techniques in order to identify potential cases of fraud. Likewise, various statistical techniques may be used to identify suspicious transactions for follow up by an investigator. For instance, patterns for spending, transferring money, and the like may be analyzed so that activity falling outside of a pattern may be identified as potential fraud.
Other types of reasoners may use data in a completely different way. For instance, transitive reasoners may be used to infer relationships from a given set of relationships, as will be discussed in more detail below. Briefly, a transitive reasoner may infer that, because a first entity is related to a second entity, and because the second entity is related to a third entity, the first entity is related to the third entity. Typically, while various reasoners provide useful information in various contexts, combination of disparate reasoners has been difficult to achieve.